package edu.zut.cs.software.perfect.manage.domain;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import edu.zut.cs.software.perfect.base.domain.BaseEntity;
import edu.zut.cs.software.perfect.course.domain.CourseCategory;
import edu.zut.cs.software.perfect.course.domain.CourseInformation;
import edu.zut.cs.software.perfect.student.domain.Classes;
import edu.zut.cs.software.perfect.teacher.domain.Department;

/**
 * @ClassName CourseManager
 * @Description TODO
 * @Author wst
 * @Date 2020年5月29日 下午7:38:06
 * @Version 1.0
 * operate table for CourseCategory,CourseInformation
 */
@Table(name = "T_INTERNAL_DATA")
@Entity
public class InternalDate extends BaseEntity<Long> {
	
	
	@Override
	public boolean equals(Object obj) {
		return EqualsBuilder.reflectionEquals(this, obj);
	}
	@Override
	public int hashCode() {
		return HashCodeBuilder.reflectionHashCode(this);
	}
	@Override
	public String toString() {
		return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
	}
	

	public static long getSerialversionuid() {
		return serialVersionUID;
	}

	/**
	 * 
	 */
	private static final long serialVersionUID = 2936031066798313520L;

	public CourseCategory getCourseCategory() {
		return courseCategory;
	}

	public void setCourseCategory(CourseCategory courseCategory) {
		this.courseCategory = courseCategory;
	}

	public CourseInformation getCourseInformation() {
		return courseInformation;
	}

	public void setCourseInformation(CourseInformation courseInformation) {
		this.courseInformation = courseInformation;
	}

	public Department getDepartment() {
		return department;
	}

	public void setDepartment(Department department) {
		this.department = department;
	}

	/**
	 * CourseCategory
	 */
	@Column(name="CC")
	CourseCategory courseCategory;
	
	/**
	 * CourseInformation
	 */
	@Column(name="CI")
	CourseInformation courseInformation;
	
	/**
	 * Department
	 */
	@Column(name="DEPARTMENT")
	Department department;
	
	/**
	 * Many internaDate objects relate to one Administrator.
	 */
	@ManyToOne
	@JoinColumn(name = "ADMINISTRATOR_ID")
	Administrator Administrator;

}
